#ifndef SHAPE_H_
#define SHAPE_H_
#include "myrand.h"

namespace Tetris{

class Shape{
protected:
	int row;
	int col;
	bool* p_arr;
	int color;
public:
	Shape();
	Shape(int r,int c);
	Shape(const Shape& shape);
	virtual ~Shape();
	virtual void Transform() = 0;
	virtual Shape* Clone() const = 0;
	virtual void Restore(const Shape* p_shape) = 0;
	void Clear();
	int Row() const;
	int Column() const;
	bool GetValue(int x, int y) const;
	virtual int GetMaxY() const;
	virtual int GetMinX() const;
	virtual int GetMaxX() const;
	virtual int GetMinY() const;
	virtual int ColorStyle() const;
};

}
#endif